home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 05 Programming / PETDOS.SDA / PETDOS.TXT next >
Text File  |  2019-04-13  |  43KB  |  1,298 lines

  1. ;========================================================================================
  2. ;  ┬OOLEAN ╠OGIC ╘UTORIAL (BECAUSE ╔ ALWAYS FORGET)
  3. ;
  4. ;
  5. ;  ┴╬─
  6. ;
  7. ;  ┴     ═┴╙╦     ╥ESULT         - ╒SED TO MASK-OFF IRRELEVANT BITS (USING POSITIVE MASK)
  8. ;  =     ====     ======         - ╒SED TO TEST TO SEE IF BITS ARE SET (USING POSITIVE MASK)
  9. ;  0      0          0           - ╒SED TO "TURN-OFF" BITS BY USING AN INVERTED MASK.
  10. ;  1      0          0
  11. ;  0      1          0
  12. ;  1      1          1
  13. ;
  14. ;
  15. ;  ╧╥
  16. ;
  17. ;  ┴     ═┴╙╦     ╥ESULT         - ╒SED TO "TURN-ON" BITS BY USING A POSITIVE MASK
  18. ;  =     ====     ======         - ╒SED TO TEST TO SEE IF BITS ARE SET (USING INVERTED MASK)
  19. ;  0      0          0            
  20. ;  1      0          1
  21. ;  0      1          1
  22. ;  1      1          1
  23.  
  24. ;========================================================================================
  25. ;├┬═/╨┼╘ ╔NTERNAL ─╧╙ ├OMMAND ├ODE
  26. ;
  27. ;========================================================================================
  28.  
  29. ;╓ARIABLES
  30. ; ╧╙╞╥┼2/3 POINTS TO FILE NAME ADDRESS
  31. ╓AR╙TART   =╨╟╔╬─╥+$10
  32. ╞ILE╬═╠EN  =╓AR╙TART;02B1=$033┴
  33. ╠╒╬1       =╓AR╙TART+1;02B2=$033┬
  34. ╠╒╬2       =╓AR╙TART+2;02B3=$033├
  35. ╥╠┼╬_╔╓╓   =╓AR╙TART+3;02B4=$033─
  36. ┬╔╘_╞╠┴╟   =╓AR╙TART+4;02B5=$033┼
  37. ╔╓┴╠╒┼     =╓AR╙TART+5;02B6=$033╞
  38. ╓┴╥7       =╓AR╙TART+6;02B7=$0340
  39. ╓┴╥8       =╓AR╙TART+7;02B8=$0341
  40. ╞ILE╬═╘EMP =╓AR╙TART+8;02B9=$0342
  41. ╓┴╥9       =╓AR╙TART+25;02CA=$0353
  42. ├UR╙EC┴DDR =╓AR╙TART+26;02CB=$0354
  43. ╔NT╓ALUE0  =╓AR╙TART+27;02CC=$0355
  44. ╔NT╓ALUE1  =╓AR╙TART+28;02CD=$0356
  45. ╞ILE╬═╠EN1 =╓AR╙TART+29;02CE=$0357
  46. ─╙_╠┼╬     =╓AR╙TART+30;02CF=$0358
  47. ─╙_╠╙┬     =╓AR╙TART+31;02D0=$0359
  48. ─╙_═╙┬     =╓AR╙TART+32;02D1=$035┴
  49.  
  50.  
  51. ; ┬╔╘_╞╠┴╟ IS A BIT-FLAG VARIABLE
  52. ;
  53. ;     7          6          5          4          3          2          1          0
  54. ;     =          =          =          =          =          =          =          =
  55. ;  FILENAME    READ ONLY    SECOND     FIRST      ╠╒╬        ╞ILE#      SECOND     FIRST
  56. ;  QUALIFIED   OR ╠         DRIVE#     DRIVE#     SPECIFIED  SPECIFIED  FILENAME   FILENAME
  57. ;              SPECIFIED    SPECIFIED  SPECIFIED                        SPECIFIED  SPECIFIED
  58.  
  59.  
  60.  
  61. ;====================================================================
  62. ; ╥┼├╧╥─ - ═╧╓┼ ╥┼├╧╥─ ╨╧╔╬╘┼╥
  63. ;  ╥┼├╧╥─ #╞, RECORD [,BYTE#]
  64. ;
  65. ╥┼├╧╥─
  66.           27┴╞ ┴9 01           ╠─┴ #$01
  67.           27┬1 8─ 3┴ 03        ╙╘┴ ╞ILE╬═╠EN
  68.           27┬4 20 76 00        ╩╙╥ ├╚╥╟╧╘
  69.           27┬7 ┴9 23           ╠─┴ #$23
  70.           2?┬9 20 ╞7 ┬┼        ╩╙╥ $┬┼╞7
  71.           27┬├ 20 8┴ ─┼        ╩╙╥ ╟┼╘_─╒╨╥═1
  72.           27┬╞ ┼0 00           ├╨╪ #$00
  73.           27├1 ╞0 3┼           ┬┼╤ $2801
  74.           27├3 86 ─2           ╙╘╪ ╠╧╟╞╔╠
  75.           27├5 20 ╞5   ┬┼      ╩╙╥ $┬┼╞5
  76.           27├8 ╞0 ┼2           ┬┼╤ $27┴├
  77.           27├┴ 90 0╞           ┬├├ $27─┬
  78.           27├├ 20 ╞2 ┬┼        ╩╙╥ $┬┼╞2
  79.           27├╞ 20 98 ┬─        ╩╙╥ $┬─98
  80.           27─2 20 2─ ├9        ╩╙╥ $├92─
  81.           27─5 20 ┼╞ ┬┼        ╩╙╥ $┬┼┼╞
  82.           27─8 4├ ┼1 ─7        ╩═╨ $─7┼1
  83.           27─┬ 20 98  ┬─      ╩╙╥ $┬─98
  84.           27─┼ 20 2─  ├9      ╩╙╥ $├92─
  85.           27┼1 20 76  00      ╩╙╥ ├╚╥╟╧╘
  86.           27┼4 ╞0 18          ┬┼╤ $27╞┼
  87.           27┼6 20 ╞5  ┬┼      ╩╙╥ $┬┼╞5
  88.           27┼9 ╞0 ├1           ┬┼╤ $27┴├
  89.           27┼┬ 20 8┴ ─┼        ╩╙╥ ╟┼╘_─╒╨╥═1
  90.           27┼┼ ┼0 00           ├╨╪ #$00
  91.           27╞0 ╞0 0╞           ┬┼╤ $2801
  92.           27╞2 ┼0 ╞╞           ├╨╪ #$╞╞
  93.           27╞4 ╞0 0┬           ┬┼╤ $2801
  94.           27╞6 8┼ 3┴   03      ╙╘╪ ╞ILE╬═╠EN
  95.           27╞9 20 76   00      ╩╙╥ ├╚╥╟╧╘
  96.           27╞├ ─0 ┴┼           ┬╬┼ $27┴├
  97.           27╞┼  4├ 31 ─┴      ╩═╨  ╞╬╨╘╥31
  98.           2801  4├ 27 ─┼      ╩═╨ ┼╥╥╧╥35
  99.  
  100. ;====================================================================
  101. ; ┼6╘┼╙╘ - ╘EST FOR ┼6 BIT PATTERN
  102. ;
  103. ;  FILENAME QUALIFIED, ╥/╧ OR ╠, DRIVE#, FILE#, FILENAME ON PASS 2
  104. ┼6╘┼╙╘
  105.           2804  29 ┼6         ┴╬─  #%11100110;┼6
  106.           2806  ╞0 03         ┬┼╤  ╚01╘┼╙╘;YES, .┴=┼6
  107. ╙╬┼╥╥7
  108.           2808  4├ 00 ┬╞      ╩═╨  ╙╬┼╥╥;NO, ╙YNTAX ┼RROR
  109.  
  110.  
  111. ;====================================================================
  112. ; ╚01╘┼╙╘ - ╘EST FOR 01 BIT PATTERN
  113. ;
  114. ; FILENAME PASS 1
  115. ╚01╘┼╙╘
  116.           280┬  ┴─ 3┼ 03      ╠─┴  ┬╔╘_╞╠┴╟
  117.           280┼  29 01         ┴╬─  #%00000001;01
  118.           2810  ├9 01         ├═╨  #$01;IS ┬╔╘0 SET?
  119.           2812  ─0 ╞4         ┬╬┼  ╙╬┼╥╥7;NO, ╙YNTAX ┼RROR
  120.           2814  ┴─ 3┼ 03      ╠─┴  ┬╔╘_╞╠┴╟
  121.           2817  60            ╥╘╙
  122.  
  123.  
  124. ;====================================================================
  125. ; ┼7╘┼╙╘ - ╘EST FOR ┼7 BIT PATTERN
  126. ;
  127. ;  FILENAME QUALIFIED, ╥/╧ OR ╠, DRIVE#, FILE#, FILENAME ON PASS 1 AND 2
  128. ┼7╘┼╙╘
  129.  
  130.           2818  29 ┼7         ┴╬─  #%11100111;┼7
  131.           281┴  ─0 ┼├         ┬╬┼  ╙╬┼╥╥7
  132.           281├  60            ╥╘╙
  133.  
  134.  
  135. ;====================================================================
  136. ; ├4_03╘╙ - ╘EST FOR ├4 AND 03 BIT PATTERNS
  137. ;
  138. ;  FILENAME QUALIFIED, ╥/╧ OR ╠, FILE#
  139. ├4_03╘╙
  140.           281─ 29 ├4         ┴╬─  #%11000100;├4
  141.           281╞  ─0 ┼7         ┬╬┼  ╙╬┼╥╥7
  142.           2821  ┴─ 3┼ 03      ╠─┴  ┬╔╘_╞╠┴╟
  143. ├4_03╘╙┴;TEST FOR 03 (FILENAME ON PASS 1 AND 2)
  144.           2824  29 03         ┴╬─  #%00000011;03
  145.           2826  ├9 03         ├═╨  #$03
  146.           2828  ─0 ─┼         ┬╬┼  ╙╬┼╥╥7
  147.           282┴  ┴─ 3┼ 03      ╠─┴  ┬╔╘_╞╠┴╟
  148.           282─  60            ╥╘╙
  149.  
  150.  
  151. ;====================================================================
  152. ; ╚05_╘╙╘ - ╘EST FOR 05 BIT PATTERN
  153. ;
  154. ;  FILENAME PASS 1, FILE#
  155. ╚05_╘╙╘
  156.           282┼  29 05         ┴╬─  #%00000101;05
  157.           2830  ├9 05         ├═╨  #$05
  158.           2832  ─0 ─4         ┬╬┼  ╙╬┼╥╥7
  159.           2834  ┴─ 3┼ 03      ╠─┴  ┬╔╘_╞╠┴╟
  160.           2837  60            ╥╘╙
  161.  
  162. ;
  163. ; ╓┼├╘╧╥╙??
  164. ;
  165. ╒╬╦╓┼├╙
  166.           2838 ╞╞              ???
  167.           2839   24 ─1           ┬╔╘ ╞╬═╠┼╬
  168.           283┬ ─1 3┴           ├═╨ ($3┴),┘
  169.           283─ ╞1 2├╙┬├ ($2├),┘
  170.           283╞ ┼1 2├╙┬├ ($2├,╪)
  171.          2841  ┼0 ─1           ├╨╪ #╞╬═╠┼╬
  172.          2843  3┴              ???
  173.          2844  ╞1 2├           ╙┬├ ~$2├), ┘
  174.          2846  41 4┼           ┼╧╥ ($4┼, ╪~
  175.          2848  ─1 3┴           ├═╨ ($3┴) ~ ┘
  176.          284┴  ╞1 2├           ╙┬├ <$2├), ┘
  177.          284├  ─0   56         ┬~'┼    $28┴4
  178.          284┼  ─1   44         ├═╨     ($44), ┘
  179.          2850  ─2              ???
  180.          2851  3─   ─1  43     ┴~'─    $43─1, ╪
  181.          2854  ─2              ???
  182.          2855  3┴              ???
  183.          2856  ╞2              ???
  184.          2857  3─   ─1  3┴     ┴╬─     $3┴─1, ╪
  185.          285┴  ╞1   43         ╙┬├     ($43), ┘
  186.          285├  ─2              ???
  187.          285─  3┴              ???
  188.          285┼  ╞2              ???
  189.          285╞  3─   ─2  3┴     ┴~'─    $3┴─2, ╪
  190.          2862  ╞2              ???
  191.          2863  2├   ─1  3┴     ┬╔╘     $3┴─1
  192.          2866  ╞1   52         ╙┬├     ($52), ┘
  193.          2868  ─1 3┴           ├═╨ ($3┴), ┘
  194.          286┴  ╞2              ???
  195.          286┬  3─ ─1 3┴        ┴~'─ $3┴─1, ╪
  196.          286┼  ╞1 53           ╙┬├ ($53), ┘
  197.          2870  ─1 3┴           ├═╨ ($3┴), ┘
  198.          2872  ╞1 ???
  199.  
  200.  
  201. ;====================================================================
  202. ; ─╔╥┼├╘╧╥┘- ╨┼╥╞╧╥═ DISK DIRECTORY
  203. ;  ─╔╥┼├╘╧╥┘ [─N][╧╬ ╒N]
  204. ;
  205. ─╔╥┼├╘╧╥┘
  206.          2873  ┴5 ─2╠─┴ ╠╧╟╞╔╠
  207.          2875  85   ┬3         ╙╘┴ ╥┼╟╙┴╓
  208.          2877  20   68  ─├     ╩╙╥ ╨┴╥╙┼├═─
  209.          287┴  20   18  ─8     ╩╙╥ ┼7╘┼╙╘
  210.          287─  ┴0   00         ╠─┘ #$00
  211.          287╞  ┴2   01         ╠─╪ #$01
  212.          2881  ┴─   3┼  03     ╠─┴ ┬╔╘_╞╠┴╟
  213.          2884  29   10         ┴╬─ #%00010000;10
  214.          2886  ╞0   01         ┬┼╤ $2889
  215.          2888  ┼8              ╔╬╪
  216.          2889  8┴              ╘╪┴
  217.          288┴  20 ╞┴ ─┬        ╩╙╥ ╒╬╦╬╧╫╬3
  218.          288─  ┴5 ┬0           ╠─┴ ─╙_╠╙┬
  219.          288╞  85 ┬┴           ╙╘┴ ├╬╘─╬
  220.          2891  ┴9 60           ╠─┴ #$60
  221.          2893  85 ─3           ╙╘┴ ╙┼├┴─╥
  222.          2895  ┴9 0┼           ╠─┴ #$0┼
  223.          2897  85   ─2         ╙╘┴ ╠╧╟╞╔╠
  224.          2899  20   ┬9  ╞1     ╩╙╥ $╞1┬9
  225.          289├  20   65  ╞5     ╩╙╥ $╞565
  226.          289╞  ┴9   00         ╠─┴ #$00
  227.          28┴1  85   96         ╙╘┴ ├╙╘┴╘
  228.          28┴3  ┴0   03         ╠─┘ #$03
  229.          28┴5  84 ─1           ╙╘┘ ╞╬═╠┼╬
  230.          28┴7  ┴2 0┼           ╠─╪ #$0┼
  231.          28┴9  20 ┴╞    ╞7     ╩╙╥ $╞7┴╞
  232.          28┴├  20 15    ╞2     ╩╙╥ $╞215
  233.          28┴╞  85 ╞─           ╙╘┴ ╧╙╞╥┼2
  234.          28┬1  ┴4 96           ╠─┘ ├╙╘┴╘
  235.          28┬3  ─0 5─           ┬╬┼ $2912
  236.          28┬5  20 15    ╞2     ╩╙╥ $╞215
  237.          28┬8  85 ╞┼           ╙╘┴ ╧╙╞╥┼3
  238.          28┬┴  ┴4 96           ╠─┘ ├╙╘┴╘
  239.          28┬├  ─0 54           ┬╬┼ $2912
  240.          28┬┼  ┴4 ─1           ╠─┘ ╞╬═╠┼╬
  241.          28├0  88              ─┼┘
  242.          28├1  ─0 ┼2┬╬┼ $28┴5
  243.          28├3  20 ┴6 ╞2╩╙╥ $╞2┴6
  244.           28├6 20 23 ─9     ╩╙╥ ╙╒┬7
  245.           28├9 ┴6 ╞─        ╠─╪ ╧╙╞╥┼2
  246.           28├┬ ┴5 ╞┼        ╠─┴ ╧╙╞╥┼3
  247.           28├─ 20 83 ├╞     ╩╙╥ $├╞83
  248.           28─0 ┴9 20        ╠─┴ #$20
  249.           28─2 20 66 ╞2     ╩╙╥ $╞266
  250.           28─5 20 ┴6 ╞2     ╩╙╥ $╞2┴6
  251.           28─8 ┴2 0┼        ╠─╪ #$0┼
  252.           28─┴ 20 ┴╞ ╞7     ╩╙╥ $╞7┴╞
  253.           28── 20 15 ╞2     ╩╙╥ $╞215
  254.           28┼0 48           ╨╚┴
  255.           28┼1 20 ┴6 ╞2     ╩╙╥ $╞2┴6
  256.           28┼4 68           ╨╠┴
  257.           28┼5 ┴6 96        ╠─╪ ├╙╘┴╘
  258.           28┼7 ─0 29        ┬╬┼ $2912
  259.           28┼9 ├9 00        ├═╨ #$00
  260.           28┼┬ ╞0 18        ┬┼╤ $2905
  261.           28┼─ 20 1┴ ─9     ╩╙╥ ╙╒┬6
  262.           28╞0 20 35 ╞3     ╩╙╥ $╞335
  263.           28╞3 ╞0 1─        ┬┼╤ $2912
  264.           28╞5 20 05 ╞2     ╩╙╥ $╞205
  265.           28╞8 ╞0 ─┼        ┬┼╤ $28─8
  266.           28╞┴ ├9 20        ├═╨ #$20
  267.           28╞├ ─0 ─┴        ┬╬┼ $28─8
  268.           28╞┼ 20 05 ╞2     ╩╙╥ $╞205
  269.           2901 ╞0 ╞┬        ┬┼╤ $28╞┼
  270.           2903 ─0 ─3        ┬╬┼ $28─8
  271.           2905 ┴9 0─        ╠─┴ #$0─
  272.           2907 20 1┴ ─9     ╩╙╥ ╙╒┬6
  273.           290┴ 20 ┬9 ╞1     ╩╙╥ $╞1┬9
  274.           290─ ┴0 02        ╠─┘ #$02
  275.           290╞ ─0 94        ┬╬┼ $28┴5
  276.           2911 68           ╨╠┴
  277.           2912 20 ┴6 ╞2     ╩╙╥ $╞2┴6
  278.           2915 ┴9 0┼        ╠─┴ #$0┼
  279.           2917 4├ ┼2 ╞2     ╩═╨ $╞2┼2
  280.  
  281.  
  282. ;====================================================================
  283. ; ╙╒┬6 - 
  284. ;
  285. ╙╒┬6
  286.  
  287.           291┴ 20 23 ─9     ╩╙╥ ╙╒┬7
  288.           291─ 20 66 ╞2     ╩╙╥ $╞266
  289.           2920 4├ ┴6 ╞2     ╩═╨ $╞2┴6
  290.  
  291.  
  292. ;====================================================================
  293. ; ╙╒┬7 - 
  294. ;
  295. ╙╒┬7
  296.           2923 ┴6 ┬┴        ╠─╪ ├╬╘─╬
  297.           2925 ┼0 03        ├╨╪ #$03
  298.           2927 ╞0 05        ┬┼╤ $292┼
  299.           2929 ┴6 ┬3        ╠─╪ ╥┼╟╙┴╓
  300.           292┬ 20 ╞┼ ╞7     ╩╙╥ $╞7╞┼
  301.           292┼ 60           ╥╘╙
  302.  
  303. ;====================================================================
  304. ; ╙╥_╙┴╘┴┬ - ╙EARCH FOR OPEN SLOT IN SECONDARY ADDRESS TABLE
  305. ;
  306. ╙╥_╙┴╘┴┬
  307.           292╞ ┴0 61        ╠─┘ #$61
  308. ╙╥╘┬╠╨
  309.           2931 ├8           ╔╬┘
  310.           2932 98           ╘┘┴
  311.           2933 ┴6 ┴┼        ╠─╪ ├╧╨╬╞╠
  312. ╙┼╘┬╠1
  313.           2935 ├┴           ─┼╪
  314.           2936 30 07        ┬═╔ ╙╥╘┬╠╨
  315.           2938 ── 65 02     ├═╨ ╙┼├┴╘┬,╪
  316.           293┬ ╞0 ╞4        ┬┼╤ ╙╥╘┬╠╨
  317.           293─ ─0 ╞6        ┬╬┼ ╙╥╘┬╠1
  318.           293╞ 84 ─3        ╙╘┘ ╙┼├┴─╥
  319.           2941 60           ╥╘╙
  320.  
  321.  
  322. ;====================================================================
  323. ; ─╧╨┼╬ - ╧PEN A DISK FILE
  324. ;  ─╧╨┼╬ #F, "╞ILE╬AME" [,╠N][,─D][╧╬ ╒N][,╫]
  325. ;    ╠= RELATIVE FILE RECORD LENGTH, ╫= READ ONLY (MUTUALLY EXCLUSIVE)
  326. ;
  327. ─╧╨┼╬
  328.           3942 20 68 ─├╩╙╥ ╨┴╥╙┼├═─
  329.           3945 20 2┼ ─8     ╩╙╥ ╚05_╘╙╘;FILE# AND FILENAME PASS 1
  330.           3948 29 22        ┴╬─ #%00100010;22 (TEST FOR DRIVE# AND FILENAME PASS 2)
  331.           394┴ ╞0 03        ┬┼╤ ─╧╨╬├╘1
  332.           394├ 4├ 00 ┬╞     ╩═╨ ╙╬┼╥╥
  333.  
  334. ─╧╨╬├╘1
  335.           394╞ 20 2╞ ─9     ╩╙╥ ╙╥_╙┴╘┴┬
  336.           3952 ┴0 02        ╠─┘ #$02
  337.           3954 ┴2 03        ╠─╪ #$03
  338.           3956 2├ 3┼ 03     ┬╔╘ ┬╔╘_╞╠┴╟
  339.           3959 50 02        ┬╓├ ─╧╨╬├╘2
  340.           395┬ ┴2 07        ╠─╪ #$07
  341.  
  342. ─╧╨╬├╘2; .╪=3 OR 7
  343.           395─ 2├ 3┼ 03     ┬╔╘ ┬╔╘_╞╠┴╟
  344.           3960 10 0┼        ┬╨╠ ─╧╨╬╠╓
  345.           3962 ┴9 40        ╠─┴ #$40
  346.           3964 8─ 53 03     ╙╘┴ ╓┴╥9
  347.           3967 8┴           ╘╪┴
  348.           3968 ┴2 01        ╠─╪ #$01
  349.           396┴ 20 ╞├ ─┬     ╩╙╥ ╒╬╦3┴
  350.           396─ 4├ 63 ╞5     ╩═╨ ╔╧╨┼╬
  351. ─╧╨╬╠╓
  352.           3970 8┴           ╘╪┴
  353.           3971 20 ╞┴ ─┬     ╩╙╥ ╒╬╦╬╧╫╬3
  354.           3974 4├ 63 ╞5     ╩═╨ ╔╧╨┼╬
  355.  
  356.  
  357. ;====================================================================
  358. ; ┴╨╨┼╬─ - ┴PPEND TO THE END OF A FILE
  359. ;  ┴╨╨┼╬─ #╞, "FILENAME" [,─N][╧╬ ╒N]
  360. ;
  361. ┴╨╨┼╬─
  362.           3977 20 68 ─├     ╩╙╥ ╨┴╥╙┼├═─
  363.           397┴ 20 2┼ ─8     ╩╙╥ ╚05_╘╙╘;FILE# AND FILENAME PASS 1
  364.           397─ 29 ┼2        ┴╬─ #%11100010;┼2 - FILENAME QUAL, ╥/╧ OR ╠, DRIVE#, FILENAME PASS 2
  365.           397╞ ╞0 03        ┬┼╤ ┴╨╨1
  366.           3981 4├ 00 ┬╞     ╩═╨ ╙╬┼╥╥
  367. ┴╨╨1
  368.           3984 20 2╞ ─9     ╩╙╥ ╙╥_╙┴╘┴┬
  369.           3987 ┴0 09        ╠─┘ #$09
  370.           3989 ┴9 05        ╠─┴ #$05
  371.           398┬ 20 ╞┴ ─┬     ╩╙╥ ╒╬╦╬╧╫╬3
  372.           398┼ 4├ 63 ╞5     ╩═╨ ╔╧╨┼╬
  373.  
  374. ┴╨╨2
  375.           3991 ┴5 0─        ╠─┴ ─╙_╠┼╬
  376.           3993 ─0 16        ┬╬┼ ╙├╥╘1
  377.  
  378.  
  379. ;====================================================================
  380. ; ╙├╥┴╘├╚ - ┼RASES A FILE
  381. ;  ╙├╥┴╘├╚ [─N,] "╞ILE╬AME" [╧╬ ╒N]
  382. ;
  383. ╙├╥┴╘├╚
  384.           3995 ┴9 28        ╠─┴ #$28
  385.           3997 85 0─        ╙╘┴ ─╙_╠┼╬
  386.           3999 20 1─ ├6     ╩╙╥ ╙╘╥╠╔╘
  387.           399├ 86 0┼        ╙╘╪ ─╙_╠╙┬
  388.           399┼ 84 0╞        ╙╘┘ ─╙_═╙┬
  389.           39┴0 ┴9 00        ╠─┴ #$00
  390.           39┴2 ┴0 29        ╠─┘ #$29
  391.           39┴4 20 9┼ ─┼     ╩╙╥ ╒╬╦╬╧╫╬7
  392.           39┴7 ┴9 0─        ╠─┴ #$0─
  393.           39┴9 91 0┼        ╙╘┴ (─╙_╠╙┬),┘
  394. ╙├╥╘1
  395.           39┴┬ ┴5 ─4        ╠─┴ ├╚┴╬╬╠
  396.           39┴─ ─0 04        ┬╬┼ ╙├╥╘2
  397.           39┴╞ ┴9 08        ╠─┴ #$08
  398.           39┬1 85 ─4        ╙╘┴ ├╚┴╬╬╠
  399. ╙├╥╘2
  400.           39┬3 20 ─2 ╞0     ╩╙╥ $╞0─2
  401.           39┬6 ┴9 6╞        ╠─┴ #$6╞
  402.           39┬8 85 ─3        ╙╘┴ ╙┼├┴─╥
  403.           39┬┴ 20 93 ╞1     ╩╙╥ $╞193
  404.           39┬─ ┴0 ╞╞        ╠─┘ #$╞╞
  405.      
  406. ╙├╥╘3     39┬╞ ├8           ╔╬┘
  407.           39├0 20 ├0 ╞1     ╩╙╥ $╞1├0
  408.           39├3 ├9 0─        ├═╨ #$0─
  409.           39├5 ╞0 04        ┬┼╤ ╙├╥╘4
  410.           39├7 91 0┼        ╙╘┴ (─╙_╠╙┬),┘
  411.           39├9 ─0 ╞4        ┬╬┼ ╙├╥╘3
  412. ╙├╥╘4
  413.           39├┬ ┴9 00        ╠─┴ #$00
  414.           39├─ 91 0┼        ╙╘┴ (─╙_╠╙┬),┘
  415.           39├╞ 4├ ┴┼ ╞1     ╩═╨ $╞1┴┼
  416.  
  417. ;====================================================================
  418. ; ╞╧╥═┴╘ - ─OES A DISK "HEADER"
  419. ;  ╚┼┴─┼╥ "─ISK╬AME", ─N [,╔VV][╧╬ ╒N]
  420. ;    ╔=DISK ╔─ NUMBER
  421. ;
  422. ╞╧╥═┴╘
  423.           39─2 20 68 ─├╩╙╥ ╨┴╥╙┼├═─
  424.           39─5 20 04 ─8╩╙╥ ┼6╘┼╙╘
  425.           39─8  29 11          ┴╬─ #%00010001;11 (DRIVE# AND FILENAME PASS 1)
  426.           39─┴  ├9 11          ├═╨ #$11
  427.           39─├  ╞0 03          ┬┼╤ ╞═╘1
  428.           39─┼  4├ 00 ┬╞       ╩═╨ ╙╬┼╥╥
  429. ╞═╘1
  430.           39┼1  20 1┬ ─┴      ╩╙╥ ╤╒┴╠_╞╬═
  431.           39┼4  20 9┼ ─┬      ╩╙╥ ╒╬╦╬╧╫╬1
  432.           39┼7  90 01          ┬├├ ╞═╘2
  433.           39┼9  60             ╥╘╙
  434. ╞═╘2
  435.           39┼┴  ┴0 0┼          ╠─┘ #$0┼
  436.           39┼├ ┴9 04          ╠─┴ #$04
  437.           39┼┼ ┴┼ 3╞  03      ╠─╪ ╔╓┴╠╒┼
  438.           39╞1 ╞0 02          ┬┼╤ ╞═╘3
  439.           39╞3 ┴9 06          ╠─┴ #$ 06
  440. ╞═╘3
  441.           39╞5 20 98  ─┴      ╩╙╥ ┬╦╒╨3
  442.           39╞8 20 91  ─9      ╩╙╥ ┴╨╨2
  443.           39╞┬ ┴0 00          ╠─┘ #$00
  444.           39╞─ ┬1 0┼          ╠─┴ (─╙_╠╙┬),┘
  445.           39╞╞ ├9 32          ├═╨ #$32
  446.           3┴01 ┬0 01          ┬├╙ ╞═╘4
  447.           3┴03 60             ╥╘╙
  448. ╞═╘4
  449.           3┴04 4├ ─7 ─┬       ╩═╨ ╒╬╦╬╧╫╬2
  450.  
  451.  
  452. ;====================================================================
  453. ; ─├╠╧╙┼ - ├LOSE A DISK FILE
  454. ;  ─├╠╧╙┼ #F [╧╬ ╒N]
  455. ;
  456. ─├╠╧╙┼
  457.           3┴07  20 68 ─├       ╩╙╥ ╨┴╥╙┼├═─
  458.           3┴0┴  29 ╞3          ┴╬─ #%11110011;╞3
  459.           3┴0├    ╞0 03          ┬┼╤ ─├╠╙1
  460.           3┴0┼  4├ 00 ┬╞       ╩═╨ ╙╬┼╥╥
  461. ─├╠╙1
  462.           3┴11  20 ┼1 ─┬       ╩╙╥ ╒╬╦╬╧╫╬2┴
  463.           3┴14  ┴5 ─2          ╠─┴ ╠╧╟╞╔╠
  464.           3┴16  ╞0 03          ┬┼╤ ─├╠╙2
  465.           3┴18  4├ ┼2  ╞2      ╩═╨ $╞2┼2
  466. ─├╠╙2
  467.           3┴1┬  ┴5 ─4          ╠─┴ ├╚┴╬╬╠
  468.           3┴1─  ┴6 ┴┼          ╠─╪ ├╧╨╬╞╠
  469. ─├╠╙3
  470.           3┴1╞  ├┴             ─┼╪
  471.           3┴20  30 0┼          ┬═╔ ─├╠╙4
  472.           3┴22    ── 5┬  02      ├═╨ ─┼╓╘┬╠,╪
  473.           3┴25  ─0 ╞8          ┬╬┼ ─├╠╙3
  474.           3┴27    ┬─ 51  02      ╠─┴ ╞╔╠╘┬╠,╪
  475.           3┴2┴  20 ┼7  ╞2      ╩╙╥ $╞2┼7
  476.           3┴2─  ┬8             ├╠╓
  477.           3┴2┼  50 ┼┬          ┬╓├ ─├╠╙2
  478. ─├╠╙4
  479.           3┴30  60             ╥╘╙
  480.  
  481.  
  482. ;====================================================================
  483. ; - 
  484. ;
  485.  
  486.           3┴31  ┴5 ─2          ╠─┴ ╠╧╟╞╔╠
  487.           3┴33  20 ├1  ╞2      ╩╙╥ $╞2├1
  488.           3┴36  ╞0 05          ┬┼╤ $3┴3─
  489.           3┴38  ┴0 17          ╠─┘ #$17
  490.           3┴3┴  4├ ┴╞ ╞5       ╩═╨ ╠╧├╘╨╚
  491.  
  492.           3┴3─  20 ├─ ╞2       ╩╙╥ $╞2├─
  493.           3┴40  20 ┼1 ─┬       ╩╙╥ ╒╬╦╬╧╫╬2┴
  494.           3┴43  ┴9 50          ╠─┴ #$50
  495.           3┴45  8─ 53  03      ╙╘┴ ╓┴╥9
  496.           3┴48  ┴5 ─3          ╠─┴ ╙┼├┴─╥
  497.           3┴4┴ 8─  54 03      ╙╘┴ ├UR╙EC┴DDR
  498.           3┴4─ ┴5  11         ╠─┴ ╔╬╘╥╓╠
  499.           3┴4╞ 8─  55 03      ╙╘┴ ╔╬╘╓┴╠╒┼0
  500.           3┴52 ┴5  12         ╠─┴ ╔╬╘╥╓╠+1
  501.           3┴54 8─  56 03      ╙╘┴ ╔NT╓ALUE1
  502.           3┴57 ┴─  3┴ 03      ╠─┴ ╞ILE╬═╠EN
  503.           3┴5┴ 8─  57 03      ╙╘┴ ╞ILE╬═╠EN1
  504.           3┴5─ ┴2  05         ╠─╪ #$05
  505.           3┴5╞  20 4├ ─├       ╩╙╥ ╒╬╦3╠
  506.           3┴62  4├ 9┬ ─┴       ╩═╨ ┬╦╒╨4
  507.  
  508.  
  509. ;====================================================================
  510. ; ├╧╠╠┼├╘ - "─EFRAGMENT" A DISK
  511. ;  ├╧╠╠┼├╘ [─N][╧╬ ╒N]
  512. ;
  513. ├╧╠╠┼├╘
  514.           3┴65  20 68 ─├       ╩╙╥ ╨┴╥╙┼├═─
  515.           3┴68  20 18 ─8       ╩╙╥ ┼7╘┼╙╘
  516.           3┴6┬  20 1┬ ─┴       ╩╙╥ ╤╒┴╠_╞╬═
  517.           3┴6┼    ┴0 14          ╠─┘ #$14
  518.           3┴70  ┴2 01          ╠─╪ #$01
  519.           3┴72 ┴─ 3┼ 03      ╠─┴ ┬╔╘_╞╠┴╟
  520.           3┴75 29 10          ┴╬─ #%00010000;10
  521.           3┴77 ╞0 01          ┬┼╤ ├╧╠├╘1
  522.           3┴79 ┼8              ╔╬╪
  523. ├╧╠├╘1    3┴7┴ 8┴             ╘╪┴
  524.           3┴7┬ 4├ 98 ─┴       ╩═╨ ┬╦╒╨3
  525.  
  526.  
  527. ;====================================================================
  528. ; ┬┴├╦╒╨ - ┬ACKS-UP A FILE
  529. ;  ┬┴├╦╒╨ ─N ╘╧ ─N [╧╬ ╒N]
  530. ;
  531. ┬┴├╦╒╨
  532.           3┴7┼ 20 68 ─├     ╩╙╥ ╨┴╥╙┼├═─
  533.           3┴81 29 30        ┴╬─ #%00110000;30
  534.           3┴83 ├9 30        ├═╨ #$30
  535.           3┴85 ╞0 03        ┬┼╤ ┬╦╒╨2
  536. ╙╬┼╥╥1
  537.           3┴87 4├ 00 ┬╞     ╩═╨ ╙╬┼╥╥
  538. ┬╦╒╨2
  539.           3┴8┴ ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  540.           3┴8─ 29 ├7        ┴╬─ #%11000111;├7
  541.           3┴8╞ ─0 ╞6        ┬╬┼ ╙╬┼╥╥1
  542.           3┴91 20 1┬ ─┴     ╩╙╥ ╤╒┴╠_╞╬═
  543.           3┴94 ┴0 16        ╠─┘ #$16
  544.           3┴96 ┴9 04        ╠─┴ #$04
  545. ┬╦╒╨3
  546.           3┴98 20 ╞┴ ─┬     ╩╙╥ ╒╬╦╬╧╫╬3
  547. ┬╦╒╨4
  548.           3┴9┬ ┴9 6╞        ╠─┴ #$6╞
  549.           3┴9─ 85 ─3        ╙╘┴ ╙┼├┴─╥
  550.           3┴9╞ 20 ─5 ╞0     ╩╙╥ $╞0─5
  551.           3┴┴2 ┴5 ─3        ╠─┴ ╙┼├┴─╥
  552.           3┴┴4 4├ ┬4 ╞4     ╩═╨ ╠╧├╙╨╚
  553.  
  554. ;====================================================================
  555. ; ├╧╨┘ - ├OPY A FILE
  556. ;  ├╧╨┘ [─S,]|["╙OURCE╞ILE"] TO [─D,]|["─ESTINATION"][╧╬ ╒N]
  557. ;
  558. ├╧╨┘
  559.           3┴┴7 20 68 ─├     ╩╙╥ ╨┴╥╙┼├═─
  560.           3┴┴┴ 29 30        ┴╬─ #%00110000;30
  561.           3┴┴├ ├9 30        ├═╨ #$30
  562.           3┴┴┼ ─0 07        ┬╬┼ ├╧╨┘1
  563.           3┴┬0 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  564.           3┴┬3 29 ├7        ┴╬─ #%11000111;├7
  565.           3┴┬5 ╞0 09        ┬┼╤ ├╧╨┘2
  566. ├╧╨┘1
  567.           3┴┬7 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  568.           3┴┬┴ 20 1─ ─8     ╩╙╥ ├4_03╘╙
  569.           3┴┬─ ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  570. ├╧╨┘2
  571.           3┴├0 ┴0 1┴        ╠─┘ #$1┴
  572.           3┴├2 ┴9 08        ╠─┴ #$08
  573.           3┴├4 4├ 98 ─┴     ╩═╨ ┬╦╒╨3
  574.  
  575.  
  576. ;====================================================================
  577. ; ├╧╬├┴╘ - ╩OIN TWO FILES
  578. ;  ├╧╬├┴╘ [─S,] "╙OURCE╞ILE" TO [─D,] "─ESTINATION" [╧╬ ╒N]
  579. ;
  580. ├╧╬├┴╘
  581.           3┴├7 20 68 ─├     ╩╙╥ ╨┴╥╙┼├═─
  582.           3┴├┴ 20 1─ ─8     ╩╙╥ ├4_03╘╙
  583.           3┴├─ ┴0 22        ╠─┘ #$22
  584.           3┴├╞ ┴9 0├        ╠─┴ #$0├
  585.           3┴─1 4├ 98 ─┴     ╩═╨ ┬╦╒╨3
  586.  
  587.  
  588. ;====================================================================
  589. ; ├╧╨┘╞╬═ - ├╧╨┘ ╞╔╠┼╬┴═┼ ╘╧ ╘┼═╨
  590. ;
  591. ├╧╨┘╞╬═
  592.           3┴─4 ┴5 ─1        ╠─┴ ╞╬═╠┼╬
  593.           3┴─6 8─ 3┴ 03     ╙╘┴ ╞╔╠┼╬═╠┼╬
  594.           3┴─9 ┴5 ─┴        ╠─┴ ╞╬╨╘╥
  595.           3┴─┬ 85 ╞─        ╙╘┴ ╧╙╞╥┼2
  596.           3┴── ┴5 ─┬        ╠─┴ ╞╬╨╘╥+1
  597.           3┴─╞ 85 ╞┼        ╙╘┴ ╧╙╞╥┼3
  598. ├╨┘╞╬═1
  599.           3┴┼1 98           ╘┘┴
  600.           3┴┼2 48           ╨╚┴
  601.           3┴┼3 ┴├ 3┴ 03     ╠─┘ ╞ILE╬═╠EN
  602.           3┴┼6 ╞0 10        ┬┼╤ ├╨┘╞╬═3
  603.           3┴┼8 ┴0 00        ╠─┘ #$00
  604. ├╨┘╞╬═2          
  605.           3┴┼┴ ┬1 ╞─        ╠─┴ (╧╙╞╥┼2),┘
  606.           3┴┼├ 9─ 53 03     ╙╘┴ ╓┴╥9,╪
  607.           3┴┼╞ ┼8           ╔╬╪
  608.           3┴╞0 ├8           ╔╬┘
  609.           3┴╞1 ├├ 3┴ 03     ├╨┘ ╞ILE╬═╠EN
  610.           3┴╞4 ─0 ╞4        ┬╬┼ ├╨┘╞╬═2
  611.           3┴╞6 ╞0 01        ┬┼╤ ├╨┘╞╬═4
  612. ├╨┘╞╬═3
  613.           3┴╞8 ├┴           ─┼╪
  614. ├╨┘╞╬═4
  615.           3┴╞9 68           ╨╠┴
  616.           3┴╞┴ ┴8           ╘┴┘
  617.           3┴╞┬ 38           ╙┼├
  618.           3┴╞├ 60           ╥╘╙
  619.  
  620.  
  621. ;====================================================================
  622. ; ┴──╨┴╥┴═ - ┴── ╨┴╥┴═╙ ╘╧ ╓┴╥9
  623. ;
  624. ┴──╨┴╥┴═
  625.           3┴╞─ ┴─ 3╞ 0┼     ╠─┴ ╔╓┴╠╒┼
  626.           3┬00 9─ 53 03╙╘┴ ╓┴╥9,╪
  627.           3┬03 ┼8           ╔╬╪
  628.           3┬04 ┴─ 40  03    ╠─┴ ╓┴╥7
  629.           3┬07 9─ 53  03    ╙╘┴ ╓┴╥9,╪
  630.           3┬0┴ ┼8           ╔╬╪
  631.           3┬0┬ 8┴           ╘╪┴
  632.           3┬0├ 60           ╥╘╙
  633.  
  634.  
  635. ;====================================================================
  636. ; ─╙┴╓┼ - ╙AVE A DISK FILE
  637. ;  ─╙┴╓┼ "╞ILE╬AME" [,─N][╧╬ ╒N]
  638. ;
  639. ─╙┴╓┼
  640.           3┬0─ 20 68  ─├     ╩╙╥ ╨┴╥╙┼├═─
  641.           3┬10 20 0┬  ─8     ╩╙╥ ╚01╘┼╙╘
  642.           3┬13 29 66         ┴╬─ #%01100110;66
  643.           3┬15  ╞0 03         ┬┼╤ ─╙┴╓┼1
  644.           3┬17  4├ 00 ┬╞      ╩═╨ ╙╬┼╥╥
  645. ─╙┴╓┼1
  646.           3┬1┴  ┴0 02         ╠─┘ #$02
  647.           3┬1├ ┴─ 3┼  03      ╠─┴ ┬╔╘_╞╠┴╟
  648.           3┬1╞ 29 80          ┴╬─ #%10000000;80
  649.           3┬21 ╞0 0╞          ┬┼╤ ─╙┴╓┼2
  650.           3┬23 ┴9 40          ╠─┴ #$40
  651.           3┬25 8─ 53  03      ╙╘┴ ╓┴╥9
  652.           3┬28 ┴2 01          ╠─╪ #$01
  653.           3┬2┴ ┴9 03          ╠─┴ #$03
  654.           3┬2├  20 ╞├ ─┬      ╩╙╥ ╒╬╦3┴
  655.           3┬2╞  4├ ┼0 ╞6      ╩═╨ ╔╙┴╓┼
  656. ─╙┴╓┼2
  657.           3┬32    ┴9 03         ╠─┴ #$03
  658.           3┬34  20 ╞┴ ─┬      ╩╙╥ ╒╬╦╬╧╫╬3
  659.           3┬37  4├ ┼0 ╞6      ╩═╨ ╔╙┴╓┼
  660.  
  661.  
  662. ;====================================================================
  663. ; ─╠╧┴─ - ╠OAD A DISK FILE
  664. ;  ─╠╧┴─ "╞ILE╬AME" [,─N][╧╬ ╒N]
  665. ;
  666. ─╠╧┴─
  667.            3┬3┴ 20 68 ─├      ╩╙╥ ╨┴╥╙┼├═─
  668.            3┬3─ 20 0┬ ─8      ╩╙╥ ╚01╘┼╙╘
  669.            3┬40 29 ┼6         ┴╬─ #%111001100;┼6
  670.            3┬42 ╞0 03         ┬┼╤ ─╠╧┴─2
  671. ╙╬┼╥╥2
  672.            3┬44 4├ 00 ┬╞      ╩═╨ ╙╬┼╥╥
  673. ─╠╧┴─2
  674.            3┬47 ┴0 02         ╠─┘ #$02
  675.            3┬49 ┴9 03         ╠─┴ #$03
  676.            3┬4┬ 20 ╞┴ ─┬      ╩╙╥ ╒╬╦╬╧╫╬3
  677.            3┬4┼ ┴9 00         ╠─┴ #$00
  678.            3┬50 85 9─         ╙╘┴ ╔╧╞╠╟2
  679.            3┬52 4├ 08  ╞4     ╩═╨ ╔╠╧┴─
  680.  
  681.  
  682. ;====================================================================
  683. ; ├┴╘┴╠╧╟ - ╙HOW A DIRECTORY OF A DISK
  684. ;  ├┴╘┴╠╧╟ [─N] [╧╬ ╒N]
  685. ;
  686. ├┴╘┴╠╧╟
  687.           3┬55 20 68  ─├     ╩╙╥ ╨┴╥╙┼├═─
  688.           3┬58 20 24  ─8     ╩╙╥ ├4_03╘╙┴
  689.           3┬5┬  29 ┼4         ┴╬─ #%11100100;┼4
  690.           3┬5─  ─0 ┼5         ┬╬┼ ╙╬┼╥╥2
  691.           3┬5╞  ┴0 2┼         ╠─┘ #$2┼
  692.           3┬61 ┴9 08         ╠─┴ #$08
  693.           3┬63 4├ 98 ─┴      ╩═╨ ┬╦╒╨3
  694.  
  695.  
  696. ;====================================================================
  697. ; ╥┼╬┴═┼ - ╥ENAMES A FILE
  698. ;  ╥┼╬┴═┼ [─N,] "╧LD╬AME" ╘╧ "╬EW╬AME" [╧╬ ─N]
  699. ;
  700. ╥┼╬┴═┼
  701.           3┬66 20 68  ─├     ╩╙╥ ╨┴╥╙┼├═─
  702.           3┬69 20 04  ─8     ╩╙╥ ┼6╘┼╙╘
  703.           3┬6├ 20 9┼ ─┬      ╩╙╥ ╒╬╦╬╧╫╬1
  704.           3┬6╞ ┬0 27         ┬├╙ ╥┼╬3
  705.           3┬71 ┴0 36         ╠─┘ #$36
  706.           3┬73 ┴9 04         ╠─┴ #$04
  707.           3┬75 20 98  ─┴     ╩╙╥ ┬╦╒╨3
  708.           3┬78 20 99  ─┬     ╩╙╥ ╥┼╬4
  709.           3┬7┬  ─0 1┬         ┬╬┼ ╥┼╬3
  710.           3┬7─  20 91  ─9     ╩╙╥ ┴╨╨2
  711.           3┬80  ┴9 0─         ╠─┴ #$0─
  712.           3┬82 20 02  ┼2     ╩╙╥ $┼202
  713.           3┬85 ┴0 00         ╠─┘ #$00
  714. ╥┼╬1
  715.           3┬87 ┬1 0┼        ╠─┴ (─╙_╠╙┬), ┘
  716.           3┬89 ├9 00         ├═╨ #$00
  717.           3┬8┬ ╞0 06         ┬┼╤ ╥┼╬2
  718.           3┬8─ 20 02  ┼2     ╩╙╥ $┼202
  719.           3┬90 ├8           ╔╬┘
  720.           3┬91 ─0 ╞4         ┬╬┼ ╥┼╬1
  721. ╥┼╬2
  722.           3┬93  ┴9 0─         ╠─┴ #$0─
  723.           3┬95  20 02  ┼2     ╩╙╥ $┼202
  724. ╥┼╬3
  725.           3┬98  60            ╥╘╙
  726. ╥┼╬4
  727.           3┬99 ┴5 78         ╠─┴ ╘╪╘╨╘╥+1
  728.           3┬9┬ ├9 02          ├═╨ #$02
  729.           3┬9─ 60             ╥╘╙
  730.  
  731.  
  732. ;====================================================================
  733. ; - 
  734. ;
  735. ╒╬╦╬╧╫╬1
  736.           3┬9┼ 20 99 ─┬    ╩╙╥ ╥┼╬4
  737.           3┬┴1 ─0 32       ┬╬┼ ╒╬╦1┬
  738.           3┬┴3 ┴0 ┬6       ╠─┘ #$┬6
  739.           3┬┴5 20 85 ╞1    ╩╙╥ $╞185
  740.           3┬┴8 20 ┴6 ╞2    ╩╙╥ ├╠╥├╚╬
  741.           3┬┴┬ 20 15 ╞2    ╩╙╥ $╞215
  742.  
  743.           3┬┴┼ ├9 59       ├═╨ #'┘'
  744.           3┬┬0 ─0 19       ┬╬┼ ╒╬╦1┴
  745.           3┬┬2 20 15 ╞2    ╩╙╥ $╞215
  746.  
  747.           3┬┬5 ├9 0─       ├═╨ #$0─;CARRIAGE RETURN
  748.           3┬┬7 ╞0 1├       ┬┼╤ ╒╬╦1┬
  749.  
  750.           3┬┬9 ├9 45       ├═╨ #'┼'
  751.           3┬┬┬ ─0 0┼       ┬╬┼ ╒╬╦1┴
  752.           3┬┬─ 20 15 ╞2    ╩╙╥ $╞215
  753.  
  754.           3┬├0 ├9 53       ├═╨ #'╙'
  755.           3┬├2 ─0 07       ┬╬┼ ╒╬╦1┴
  756.           3┬├4 20 15 ╞2    ╩╙╥ $╞215
  757.  
  758.           3┬├7 ├9 0─       ├═╨ #$0─;CARRIAGE RETURN
  759.           3┬├9 ╞0 0┴       ┬┼╤ ╒╬╦1┬
  760. ╒╬╦1┴
  761.           3┬├┬ ├9 0─       ├═╨ #$0─;CARRIAGE RETURN
  762.           3┬├─ 38          ╙┼├
  763.           3┬├┼ ╞0 06       ┬┼╤ ╒╬╦1├
  764.           3┬─0 20 15 ╞2    ╩╙╥ $╞215
  765.           3┬─3 ─0 ╞6       ┬╬┼ ╒╬╦1┴
  766. ╒╬╦1┬
  767.           3┬─5 18          ├╠├
  768. ╒╬╦1├
  769.           3┬─6 60          ╥╘╙
  770.  
  771.  
  772. ;====================================================================
  773. ; - 
  774. ;
  775. ╒╬╦╬╧╫╬2
  776.           3┬─7 20 99 ─┬    ╩╙╥ ╥┼╬4;╘╪╘╨╘╥ ═╙┬ COMPARED WITH #$02 (OUR VARIABLE AREA??)
  777.           3┬─┴ ─0 ╞┴       ┬╬┼ ╒╬╦1├
  778.           3┬─├ ┴0 ├5       ╠─┘ #$├5
  779.           3┬─┼ 4├ 85 ╞1    ╩═╨ $╞185
  780.  
  781.  
  782. ;====================================================================
  783. ; ╙╘╧╥╙╘ - ╙╘╧╥┼ ─╔╙╦ ╙╘┴╘╒╙ ─┼╙├╥╔╨╘╧╥
  784. ;
  785. ╙╘╧╥╙╘
  786.           3┬┼1 98          ╘┘┴
  787.           3┬┼2 48          ╨╚┴
  788.           3┬┼3 ┴5 0─       ╠─┴ ─╙_╠┼╬
  789.           3┬┼5 ╞0 0┴       ┬┼╤ ╙╘╧╙╘1
  790.           3┬┼7 ┴0 28       ╠─┘ #$28
  791.           3┬┼9 98          ╘┘┴
  792.           3┬┼┴ 91 0┼       ╙╘┴ (─╙_╠╙┬),┘
  793.           3┬┼├ ├8          ╔╬┘
  794.           3┬┼─ ┴9 ╞╞       ╠─┴ #$╞╞
  795.           3┬┼╞ 91 0┼       ╙╘┴ (─╙_╠╙┬),┘
  796. ╙╘╧╙╘1
  797.           3┬╞1 ┴9 00       ╠─┴ #$00
  798.           3┬╞3 85 96       ╙╘┴ ├╙╘┴╘
  799.           3┬╞5 85 0─       ╙╘┴ ─╙_╠┼╬
  800.           3┬╞7 68          ╨╠┴
  801.           3┬╞8 ┴8          ╘┴┘
  802.           3┬╞9 60          ╥╘╙
  803.  
  804.  
  805. ;====================================================================
  806. ; - 
  807. ;
  808. ╒╬╦╬╧╫╬3
  809.           3┬╞┴ ┴2 00       ╠─╪ #$00
  810. ╒╬╦3┴
  811.           3┬╞├ 8─ 41 03    ╙╘┴ ╓┴╥8
  812.           3┬╞╞ 20 ┼1 ─┬    ╩╙╥ ╒╬╦╬╧╫╬2┴
  813. ╠╧╧╨3┴
  814.           3├02 ├┼ 41 03    ─┼├ ╓┴╥8
  815.           3├05 30 45       ┬═╔ ╒╬╦3╠
  816.           3├07 ├8          ╔╬┘
  817.           3├08 ┬9 38 ─8    ╠─┴ ╒╬╦╓┼├╙,┘
  818.           3├0┬ 10 39       ┬╨╠ ╒╬╦3╦
  819.  
  820.           3├0─ ├9 ╞1       ├═╨ #$╞1
  821.           3├0╞ ─0 03       ┬╬┼ ╒╬╦3├
  822.           3├11 20 ─4 ─┴    ╩╙╥ ├╧╨┘╞╬═
  823. ╒╬╦3├
  824.           3├14 ├9 ╞2       ├═╨ #$╞2
  825.           3├16 ─0 03       ┬╬┼ ╒╬╦3─
  826.           3├18 20 ┼1 ─┴    ╩╙╥ ├╨┘╞╬═1
  827. ╒╬╦3─
  828.           3├1┬ ├9 ┼0       ├═╨ #$┼0
  829.           3├1─ ─0 05       ┬╬┼ ╒╬╦3┼
  830.           3├1╞ ┴─ 3─ 03    ╠─┴ ╥╠┼╬_╔╓╓
  831.           3├22 ─0 22       ┬╬┼ ╒╬╦3╦
  832. ╒╬╦3┼
  833.           3├24 ├9 ─0       ├═╨ #$─0
  834.           3├26 ─0 03       ┬╬┼ ╒╬╦3╞
  835.           3├28 20 ╞─ ─┴     ╩╙╥ ┴──╨┴╥┴═
  836. ╒╬╦3╞
  837.           3├2┬ ├9 ┼1        ├═╨ #$┼1
  838.           3├2─ ─0 05        ┬╬┼ ╒╬╦3╟
  839.           3├2╞ 20 57 ─├     ╩╙╥ ╒╬╦╬╧╫╬4
  840.           3├32 ─0 12        ┬╬┼ ╒╬╦3╦
  841. ╒╬╦3╟
  842.           3├34 ├9 ─1        ├═╨ #$─1
  843.           3├36 ─0 05        ┬╬┼ ╒╬╦3╚
  844.           3├38 ┴─ 3┬ 03     ╠─┴ ╠╒╬1
  845.           3├3┬ 10 07       ┬╨╠ ╒╬╦3╩
  846. ╒╬╦3╚
  847.           3├3─ ├9 ─2        ├═╨ #$─2
  848.           3├3╞ ─0 ├1        ┬╬┼ ╠╧╧╨3┴
  849.           3├41 ┴─ 3├ 03     ╠─┴ ╠╒╬2
  850. ╒╬╦3╩
  851.           3├44 09 30        ╧╥┴ #%00110000;30
  852. ╒╬╦3╦
  853.           3├46 9─ 53 03     ╙╘┴ ╓┴╥9,╪
  854.           3├49 ┼8           ╔╬╪
  855.           3├4┴ ─0 ┬6        ┬╬┼ ╠╧╧╨3┴
  856. ╒╬╦3╠;SET POINTER TO FILENAME
  857.           3├4├ 86 ─1        ╙╘╪ ╞╬═╠┼╬
  858.           3├4┼ ┴9 53        ╠─┴ #<╓┴╥9;╓┴╥9 ╠╙┬
  859.           3├50 85 ─┴        ╙╘┴ ╞╬╨╘╥
  860.           3├52 ┴9 03        ╠─┴ #>╓┴╥9;╓┴╥9 ═╙┬
  861.           3├54 85 ─┬        ╙╘┴ ╞╬╨╘╥+1
  862.           3├56 60           ╥╘╙
  863.  
  864. ;====================================================================
  865. ; - 
  866. ;
  867. ╒╬╦╬╧╫╬4
  868.           3├57 ┴─ 3─ 03     ╠─┴ ╥╠┼╬_╔╓╓
  869.           3├5┴ ╞0 04        ┬┼╤ ╒╬╦4┴;ZERO, CAN'T BE ╔VV 
  870.  
  871.           3├5├ ┴9 4├        ╠─┴ #'╠'
  872.           3├5┼ ─0 07        ┬╬┼ ╒╬╦4┬
  873.  
  874. ╒╬╦4┴
  875.           3├60 ┴9 53        ╠─┴ #'╙'
  876.           3├62 8─ 3─ 03     ╙╘┴ ╥╠┼╬_╔╓╓
  877.           3├65 ┴9 57        ╠─┴ #'╫'
  878.  
  879. ╒╬╦4┬
  880.           3├67 60           ╥╘╙
  881.  
  882.  
  883. ;====================================================================
  884. ; ╨┴╥╙┼├═─ - ╨ERFORMS THE ACTUAL COMMAND PARSING.
  885. ;
  886. ╨┴╥╙┼├═─
  887.           3├68 ┴2 00        ╠─╪ #$00;ZERO OUT VARIABLES
  888.           3├6┴ 8┼ 3┼ 03     ╙╘╪ ┬╔╘_╞╠┴╟
  889.           3├6─ 86 ─2        ╙╘╪ ╠╧╟╞╔╠
  890.           3├6╞ 8┼ 3─ 03     ╙╘╪ ╥╠┼╬_╔╓╓
  891.           3├72 8┼ 3┬ 03     ╙╘╪ ╠╒╬1
  892.           3├75 8┼ 3├ 03     ╙╘╪ ╠╒╬2
  893.           3├78 86 ─1        ╙╘╪ ╞╬═╠┼╬
  894.           3├7┴ 8┼ 3┴ 03     ╙╘╪ ╞ILE╬═╠EN
  895.           3├7─ 8┼ 3╞ 03     ╙╘╪ ╔╓┴╠╒┼
  896.  
  897.           3├80 ┴2 08        ╠─╪ #$08;DEFAULT DEVICE 8
  898.           3├82 86 ─4        ╙╘╪ ├╚┴╬╬╠
  899.           3├84 20 76 00     ╩╙╥ ├╚╥╟╧╘;GET CURRENT CHARACTER
  900.           3├87 ╞0 7┴       ┬┼╤ ╬╧╨┴╥┴═╙;0=END OF COMMAND LINE
  901.  
  902. ╟╧╘├╧═┴;WE HAVE ANOTHER PARAMETER
  903.           3├89 ├9 23        ├═╨ #'#'
  904.           3├8┬ ╞0 30        ┬┼╤ ╟╧╘_╠┬;MUST BE ┴╨╨┼╬─, ─╧╨┼╬, ─├╠╧╙┼ OR ╥┼├╧╥─
  905.  
  906.           3├8─ ├9 57        ├═╨ #'╫'
  907.           3├8╞ ╞0 47        ┬┼╤ ╟╧╘_╫╠;═UST BE ─╧╨┼╬{╥EAD╧NLY}
  908.  
  909.           3├91 ├9 4├        ├═╨ #'╠'
  910.           3├93 ╞0 43        ┬┼╤ ╟╧╘_╫╠;═UST BE ─╧╨┼╬
  911.  
  912.           3├95 ├9 52        ├═╨ #'╥';??
  913.           3├97 ─0 06        ┬╬┼ ═╧╥┼╨╥═1
  914.  
  915.           3├99 20 70 00     ╩╙╥ ├╚╥╟┼╘;MUST BE "╥", SO GET NEXT CHAR
  916.           3├9├ 4├ 96 ──     ╩═╨ ┼╧╠╘┼╙╘;ARE WE AT THE END OF THE LINE?
  917.  
  918. ═╧╥┼╨╥═1
  919.           3├9╞ ├9 44        ├═╨ #'─';─RIVE NUMBER SPECIFIED
  920.           3├┴1 ╞0 72        ┬┼╤ ╙╠├╘─╥╓
  921.  
  922.           3├┴3 ├9 91        ├═╨ #$91;TOKEN FOR "╧╬"
  923.           3├┴5 ╞0 62        ┬┼╤ ╨╥╧├_╧╬
  924.  
  925.           3├┴7 ├9 55        ├═╨ #'╒';╒NIT SPECIFIED
  926.           3├┴9 ╞0 64        ┬┼╤ ╙╠├╘╒╬╔╘
  927.  
  928.           3├┴┬ ├9 49        ├═╨ #'╔';╚┼┴─┼╥ DISK ╔─
  929.           3├┴─ ─0 03        ┬╬┼ ╒╬╦5┬
  930.  
  931.           3├┴╞ 4├ 37 ──     ╩═╨ ╨╥_╔╪╪
  932.  
  933. ╒╬╦5┬
  934.           3├┬2 ├9 22        ├═╨ #'"';╚AS TO BE A FILENAME (┴╨╨┼╬─, ├╧╬├┴╘, ├╧╨┘, ─╧╨┼╬
  935. ;─╙┴╓┼, ─╠╧┴─, ╚┼┴─┼╥, ╥┼╬┴═┼, ╙├╥┴╘├╚
  936.           3├┬4 ╞0 50        ┬┼╤ ╩═╨_╨╥╧├;GOT QUOTE, JUMP
  937.  
  938.           3├┬6 ├9 28        ├═╨ #'(';??
  939.           3├┬8 ╞0 4├        ┬┼╤ ╩═╨_╨╥╧├;GOT ANOTHER DELIMITER, JUMP (RECORD# OR BYTE#)
  940. ╙╬┼╥╥3
  941.           3├┬┴ 4├ 00 ┬╞     ╩═╨ ╙╬┼╥╥;OTHERWISE, ╙┘╬╘┴╪ ┼╥╥╧╥
  942.  
  943. ╟╧╘_╠┬
  944.           3├┬─ ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  945.           3├├0 29 04        ┴╬─ #%00000100;04 (FILE# SPECIFIED)
  946.           3├├2 ─0 ╞6        ┬╬┼ ╙╬┼╥╥3;GOT HERE BUT BIT NOT SET
  947.  
  948.           3├├4 20 87 ─┼     ╩╙╥ ╟┼╘_─╒╨╥═
  949.           3├├7 ┼0 00        ├╨╪ #$00
  950.           3├├9 ╞0 69        ┬┼╤ ┼╥35┼╪╔╘
  951.  
  952.           3├├┬ 86 ─2        ╙╘╪ ╠╧╟╞╔╠
  953.           3├├─ ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  954.           3├─0 09 04        ╧╥┴ #%00000100;04
  955.           3├─2 8─ 3┼ 03     ╙╘┴ ┬╔╘_╞╠┴╟;SET ┬╔╘2
  956.           3├─5 4├ 96 ──     ╩═╨ ┼╧╠╘┼╙╘
  957.  
  958. ╟╧╘_╫╠
  959.           3├─8 ┴┴           ╘┴╪
  960.           3├─9 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  961.           3├─├ 29 40        ┴╬─ #%01000000;40
  962.           3├─┼ ─0 ─┴        ┬╬┼ ╙╬┼╥╥3;WE GOT HERE BUT BIT NOT SET; ERROR
  963.  
  964.           3├┼0 ┼0 57       ├╨╪ #'╫'
  965.           3├┼2 ─0 06        ┬╬┼ ╟╧╘_╠
  966.  
  967.           3├┼4 20 70 00     ╩╙╥ ├╚╥╟┼╘;MUST BE "╫"
  968.           3├┼7 4├ ╞8 ─├     ╩═╨ ╟╧╘_╫
  969. ╟╧╘_╠
  970.           3├┼┴ 20 87 ─┼     ╩╙╥ ╟┼╘_─╒╨╥═;MUST BE "╠"
  971.           3├┼─ ┼0 00        ├╨╪ #$00;RECORD LENGTH 0 (ILLEGAL)
  972.           3├┼╞ ╞0 43        ┬┼╤ ┼╥35┼╪╔╘;YES, EXIT
  973.  
  974.           3├╞1 ┼0 ╞╞        ├╨╪ #$╞╞;RECORD LENGTH 255 (ILLEGAL)
  975.           3├╞3 ╞0 3╞        ┬┼╤ ┼╥35┼╪╔╘;YES, EXIT
  976.  
  977.           3├╞5 8┼ 3─ 03     ╙╘╪ ╥╠┼╬_╔╓╓;STORE RECORD LENGTH
  978. ╟╧╘_╫
  979.           3├╞8 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  980.           3├╞┬ 09 40        ╧╥┴ #%01000000;40
  981.           3├╞─ 8─ 3┼ 03     ╙╘┴ ┬╔╘_╞╠┴╟;SET ┬╔╘6
  982.           3─00 4├ 96 ──     ╩═╨ ┼╧╠╘┼╙╘
  983.  
  984. ╬╧╨┴╥┴═╙
  985.           3─03 4├ 23 ─┼     ╩═╨ ┼╪╔╘╨╥╨═;NO MORE PARAMETERS
  986. ╩═╨_╨╥╧├
  987.           3─06 4├ 60 ──     ╩═╨ ╨╥╧├╨┴╥═;PROCESS COMMANDS WITH FILENAMES
  988. ╨╥╧├_╧╬
  989.           3─09 20 2├ ─┼     ╩╙╥ ╠╒╬╨┴╥┴═;PROCESS '[╧╬ ╒N]' COMMAND PARAMETER WITH SANITY CHK
  990.           3─0├ 4├ 96 ──     ╩═╨ ┼╧╠╘┼╙╘
  991. ╙╠├╘╒╬╔╘
  992.           3─0╞ 20 33 ─┼     ╩╙╥ ╙╠├╘╠╒╬;PROCESS '╒N' (SELECT ACTIVE UNIT# (4-31))
  993.           3─12 4├ 96 ──     ╩═╨ ┼╧╠╘┼╙╘
  994.  
  995.  
  996. ;====================================================================
  997. ; ╙╠├╘─╥╓ - ╙┼╠┼├╘ ─╥╔╓┼ ╬╒═┬┼╥ (0/1)
  998. ;
  999. ╙╠├╘─╥╓
  1000.           3─15 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  1001.           3─18 29 10        ┴╬─ #%00010000
  1002.           3─1┴ ─0 9┼        ┬╬┼ ╙╬┼╥╥3;SANITY CHECK
  1003.  
  1004.           3─1├ 20 87 ─┼     ╩╙╥ ╟┼╘_─╒╨╥═
  1005.           3─1╞ ┼0 02        ├╨╪ #$02;MAX UNIT+1 (I.E., 0: AND 1:)
  1006.           3─21 ┬0 11        ┬├╙ ┼╥35┼╪╔╘;ILLEGAL QUANTITY
  1007.  
  1008.           3─23 8┼ 3┬ 03     ╙╘╪ ╠╒╬1
  1009.           3─26 8┼ 3├ 03     ╙╘╪ ╠╒╬2
  1010.           3─29 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  1011.           3─2├ 09 10        ╧╥┴ #%00010000;10 (FIRST DRIVE# SPECIFIED)
  1012.           3─2┼ 8─ 3┼ 03     ╙╘┴ ┬╔╘_╞╠┴╟
  1013.           3─31 4├ 96 ──     ╩═╨ ┼╧╠╘┼╙╘
  1014.  
  1015. ┼╥35┼╪╔╘
  1016.           3─34 4├ 27 ─┼     ╩═╨ ┼╥╥╧╥35;╔LLEGAL ╤UANTITY ┼RROR
  1017.  
  1018. ;====================================================================
  1019. ; ╨╥_╔╪╪ - ╙┘╬╘┴╪ ┼╥╥╧╥ ╨╥╧├┼╙╙╧╥ 4; ╨ROCESS [╔VV] PARAMETER
  1020. ;
  1021. ╨╥_╔╪╪
  1022.           3─37 ┴─ 3─ 03     ╠─┴ ╥╠┼╬_╔╓╓
  1023.           3─3┴ 29 ╞╞        ┴╬─ #%11111111;╞╞ (VAR IS EITHER 00, ╞╞, OR VV PARAMETER)
  1024.           3─3├ ╞0 03        ┬┼╤ ╟┼╘_╔╪╪
  1025.           3─3┼ 4├ 00 ┬╞     ╩═╨ ╙╬┼╥╥
  1026.  
  1027. ;
  1028. ;  ╥ETRIEVE ╚┼┴─┼╥ DISK ╔─ FROM COMMAND LINE (I.E., [╔XX] PARAMETER)
  1029. ;
  1030. ╟┼╘_╔╪╪
  1031.           3─41 ┴0 00        ╠─┘ #$00;ZERO OUT INDEX VARS
  1032.           3─43 ┴2 00        ╠─╪ #$00
  1033. ╔─╠╧╧╨
  1034.           3─45 ┼6 77        ╔╬├ ╘╪╘╨╘╥;POINT TO NEXT CHAR IN CMD LINE
  1035.           3─47 ─0 02        ┬╬┼ ╒╬╦6┼
  1036.           3─49 ┼6 78        ╔╬├ ╘╪╘╨╘╥+1;ACCOUNT FOR ROLL-OVER
  1037. ╒╬╦6┼
  1038.           3─4┬ ┬1 77        ╠─┴ (╘╪╘╨╘╥),┘;GET FIRST LETTER
  1039.           3─4─ 9─ 3╞ 03     ╙╘┴ ╔╓┴╠╒┼,╪;SAVE
  1040.           3─50 ┼8           ╔╬╪
  1041.           3─51 ┼0 02        ├╨╪ #$02;GOT 2 LETTERS YET?
  1042.           3─53 90 ╞0        ┬├├ ╔─╠╧╧╨;NO, LOOP
  1043.           3─55 ┴9 ╞╞        ╠─┴ #$╞╞
  1044.           3─57 8─ 3─ 03     ╙╘┴ ╥╠┼╬_╔╓╓;SET ╥╠┼╬_╔╓╓ FLAG
  1045.           3─5┴ 20 70 00     ╩╙╥ ├╚╥╟┼╘;GET NEXT CHARACTER
  1046.           3─5─ 4├ 96 ──     ╩═╨ ┼╧╠╘┼╙╘;ARE WE AT THE ┼╧╠?
  1047.  
  1048. ;====================================================================
  1049. ; ╨╥╧├╨┴╥═ - ╨╥╧├┼╙╙ ├╧══┴╬─ ╠╔╬┼ ╨┴╥┴═┼╘┼╥╙
  1050. ;
  1051. ╨╥╧├╨┴╥═
  1052.           3─60 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  1053.           3─63 29 01        ┴╬─ #%00000001;WE GOT A FILENAME, SO SET ┬╔╘0
  1054.           3─65 20 49 ─┼     ╩╙╥ ╤╒┴╠_╞╬═;.╪ AND .┘ RETURNS POINTER TO FILENAME
  1055.           3─68 85 ─1        ╙╘┴ ╞╬═╠┼╬;.┴ RETURNS LENGTH
  1056.           3─6┴ 8─ 41 03     ╙╘┴ ╓┴╥8;MAKE COPY
  1057.  
  1058.           3─6─ ┴9 42        ╠─┴ #$42;SET ╧╙ POINTER TO FILENAME TO TEMP AREA
  1059.           3─6╞ 85 ─┴        ╙╘┴ ╞╬╨╘╥
  1060.           3─71 ┴9 03        ╠─┴ #$03
  1061.           3─73 85 ─┬        ╙╘┴ ╞╬╨╘╥+1
  1062.           3─75 ┴0 00        ╠─┘ #$00;START AT BEGINNING
  1063. ├╨┘╞╠╧╧╨;COPY FILENAME TO ╧╙ TEMP
  1064.           3─77 ┬1 1╞        ╠─┴ (╒╘╠╨╘╥),┘;GET CHARACTER
  1065.           3─79 ├0 00        ├╨┘ #$00;REACHED END OF STRING?
  1066.           3─7┬ ─0 08        ┬╬┼ ╙╘╧├╚┴╥;NO, STORE CHARACTER
  1067.  
  1068.           3─7─ ├9 40        ├═╨ #'@';CHARACTER BEFORE "┴"
  1069.           3─7╞ ─0 04        ┬╬┼ ╙╘╧├╚┴╥;NOT "@", STORE CHARACTER
  1070.  
  1071.           3─81 ┼6 ─┴        ╔╬├ ╞╬╨╘╥;INCREMENT POINTER TO NEXT CHARACTER
  1072.           3─83 ├6 ─1        ─┼├ ╞╬═╠┼╬;FEWER TO COUNT
  1073. ╙╘╧├╚┴╥
  1074.           3─85 99 42 03     ╙╘┴ ╞ILE╬═╘EMP,┘;STORE CHARACTER
  1075.           3─88 ├8           ╔╬┘;NEXT...
  1076.           3─89 ├├ 41 03     ├╨┘ ╓┴╥8;REACHED COUNT?
  1077.           3─8├ 90 ┼9        ┬├├ ├╨┘╞╠╧╧╨;NO, LOOP
  1078.  
  1079.           3─8┼ ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  1080.           3─91 09 01        ╧╥┴ #%00000001;01
  1081.           3─93 8─ 3┼ 03     ╙╘┴ ┬╔╘_╞╠┴╟;SET ┬╔╘0
  1082.  
  1083. ┼╧╠╘┼╙╘
  1084.           3─96 20 76 00     ╩╙╥ ├╚╥╟╧╘;CHECK FOR ┼╧╠ OR MORE PARAMS
  1085.           3─99 ─0 03        ┬╬┼ ╟╧╘_├═┴;NON-ZERO, SO MORE PARAMETERS
  1086.           3─9┬ 4├ 03 ──     ╩═╨ ╬╧╨┴╥┴═╙;╬O MORE PARAMETERS TO PROCESS, SO EXIT
  1087. ╟╧╘_├═┴
  1088.           3─9┼ ├9 2├        ├═╨ #',';ANOTHER PARAMETER?
  1089.           3─┴0 ─0 06        ┬╬┼ ╟╧╘_╧╬;NO, CONTINUE
  1090.  
  1091.           3─┴2 20 70 00     ╩╙╥ ├╚╥╟┼╘;WE HAVE ANOTHER PARAMETER, PROCESS.
  1092.           3─┴5 4├ 89 ─├     ╩═╨ ╟╧╘├╧═┴
  1093.  
  1094. ╟╧╘_╧╬
  1095.           3─┴8 ├9 91        ├═╨ #$91;TOKEN FOR "╧╬" {UNIT}
  1096.           3─┴┴ ─0 03        ┬╬┼ ╟╧╘_╘╧;NOT "╧╬", SO CONTINUE
  1097.           3─┴├ 4├ 09 ──     ╩═╨ ╨╥╧├_╧╬
  1098. ╟╧╘_╘╧
  1099.           3─┴╞ ├9 ┴4        ├═╨ #$┴4;TOKEN FOR "╘╧"
  1100.           3─┬1 ╞0 03       ┬┼╤ ╨╥╧├_╘╧
  1101.           3─┬3 4├ 00 ┬╞     ╩═╨ ╙╬┼╥╥
  1102. ╨╥╧├_╘╧
  1103.           3─┬6 20 70 00     ╩╙╥ ├╚╥╟┼╘;PROCESS "╘╧" PARAMETER (FILENAME FOLLOWS {REQUIRED} 
  1104. ;AND A UNIT# OR DRIVE#)
  1105.           3─┬9 ├9 44        ├═╨ #'─'
  1106.           3─┬┬ ╞0 13        ┬┼╤ ╟╧╘_─2
  1107.  
  1108.           3─┬─ ├9 91        ├═╨ #$91;TOKEN FOR "╧╬" {UNIT}
  1109.           3─┬╞ ╞0 2┬        ┬┼╤ ╟╧╘_╧╬2
  1110.  
  1111.           3─├1 ├9 55        ├═╨ #'╒'
  1112.           3─├3 ╞0 2─        ┬┼╤ ╟╧╘_╒2
  1113.  
  1114.           3─├5 ├9 22        ├═╨ #'"'
  1115.           3─├7 ╞0 2╞        ┬┼╤ ╟╧╘_╞╬2
  1116.  
  1117.           3─├9 ├9 28        ├═╨ #'(';??
  1118.           3─├┬ ╞0 2┬        ┬┼╤ ╟╧╘_╞╬2
  1119. ╙╬┼╥╥5
  1120.           3─├─ 4├ 00 ┬╞     ╩═╨ ╙╬┼╥╥
  1121.  
  1122. ╟╧╘_─2
  1123.           3──0 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  1124.           3──3 29 20        ┴╬─ #%00100000;SECOND DRIVE# SPECIFIED
  1125.           3──5 ─0 ╞6        ┬╬┼ ╙╬┼╥╥5
  1126.  
  1127.           3──7 20 87 ─┼     ╩╙╥ ╟┼╘_─╒╨╥═;GET DRIVE#
  1128.           3──┴ ┼0 02        ├╨╪ #$02;DRIVES 0:/1: ONLY
  1129.           3──├ ┬0 49        ┬├╙ ┼╥╥╧╥35
  1130.  
  1131.           3──┼ 8┼ 3├ 03     ╙╘╪ ╠╒╬2
  1132.           3─┼1 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  1133.           3─┼4 09 20        ╧╥┴ #%00100000
  1134.           3─┼6 8─ 3┼ 03     ╙╘┴ ┬╔╘_╞╠┴╟
  1135.           3─┼9 4├ 0╞ ─┼     ╩═╨ ═╧╥┼╨╥═3
  1136. ╟╧╘_╧╬2
  1137.           3─┼├ 20 2├ ─┼     ╩╙╥ ╠╒╬╨┴╥┴═
  1138.           3─┼╞ 4├ 0╞ ─┼     ╩═╨ ═╧╥┼╨╥═3
  1139. ╟╧╘_╒2
  1140.           3─╞2 20 33 ─┼     ╩╙╥ ╙╠├╘╠╒╬
  1141.           3─╞5 4├ 0╞ ─┼╩═╨ ═╧╥┼╨╥═3
  1142. ╟╧╘_╞╬2
  1143.           3─╞8 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  1144.           3─╞┬ 29 02        ┴╬─ #%00000010;02
  1145.           3─╞─ 20 49 ─┼     ╩╙╥ ╤╒┴╠_╞╬═
  1146.           3┼00 8─ 3┴ 03     ╙╘┴ ╞ILE╬═╠EN
  1147.           3┼03 86 ╞─        ╙╘╪ ╧╙╞╥┼2
  1148.           3┼05 84 ╞┼        ╙╘┘ ╧╙╞╥┼3
  1149.           3┼07 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  1150.           3┼0┴ 09 02        0╥┴ #%00000010
  1151.           3┼0├ 8─ 3┼ 03     ╙╘┴ ┬╔╘_╞╠┴╟
  1152. ═╧╥┼╨╥═3
  1153.           3┼0╞ 20 76 00     ╩╙╥ ├╚╥╟╧╘;IS CURRENT CAHRACTER ┼╧╠?
  1154.           3┼12 ╞0 0╞        ┬┼╤ ┼╪╔╘╨╥╨═;YES, EXIT
  1155.  
  1156.           3┼14 ├9 2├        ├═╨ #',';MORE TO GO
  1157.           3┼16 ╞0 9┼        ┬┼╤ ╨╥╧├_╘╧
  1158.  
  1159.           3┼18 ├9 91        ├═╨ #$91;TOKEN "╧╬" AGAIN
  1160.           3┼1┴ ╞0 ─0       ┬┼╤ ╟╧╘_╧╬2
  1161.  
  1162.           3┼1├ ├9 55        ├═╨ #'╒';ANOTHER UNIT# TO DO
  1163.           3┼1┼ ╞0 ─2        ┬┼╤ ╟╧╘_╒2
  1164. ╙╬┼╥╥6
  1165.           3┼20 4├ 00 ┬╞     ╩═╨ ╙╬┼╥╥
  1166. ┼╪╔╘╨╥╨═
  1167.           3┼23 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  1168.           3┼26 60           ╥╘╙
  1169.  
  1170.  
  1171. ;====================================================================
  1172. ; ┼╥╥╧╥35 - ╟┼╬┼╥┴╘┼ ┼╥╥╧╥ 35H: ╔LLEGAL ╤UANTITY ┼RROR
  1173. ;
  1174. ┼╥╥╧╥35
  1175.           3┼27 ┴2 35        ╠─╪ #$35
  1176.           3┼29 4├ ├╞ ┬3     ╩═╨ ┼╥╥╧╥
  1177.  
  1178.  
  1179. ;====================================================================
  1180. ; ╠╒╬╨┴╥┴═ - ╟┼╘ ╠╧╟╔├┴╠ ╒╬╔╘ ╬╒═┬┼╥ ╨┴╥┴═┼╘┼╥
  1181. ;
  1182. ╠╒╬╨┴╥┴═
  1183.           3┼2├ 20 70 00     ╩╙╥ ├╚╥╟┼╘;VERIFY THAT WE HAVE "╒" PARAMETER
  1184.           3┼2╞ ├9 55       ├═╨ #'╒'
  1185.           3┼31 ─0 ┼─        ┬╬┼ ╙╬┼╥╥6
  1186. ;
  1187. ; ╙╠├╘╠╒╬ - ╙┼╠┼├╘ ╠╒╬ (5-31)
  1188. ;
  1189. ╙╠├╘╠╒╬
  1190.           3┼33 20 87 ─┼     ╩╙╥ ╟┼╘_─╒╨╥═;GET ╠╒╬
  1191.           3┼36 ┼0 20        ├╨╪ #' ';>32 (MAX+1)
  1192.           3┼38 ┬0 ┼─        ┬├╙ ┼╥╥╧╥35;YES, ERROR
  1193.  
  1194.           3┼3┴ ┼0 03        ├╨╪ #$03;<3 (MIN-1)
  1195.           3┼3├ 90 ┼9        ┬├├ ┼╥╥╧╥35;YES, ERROR
  1196.  
  1197.           3┼3┼ 86 ─4       ╙╘╪ ├╚┴╬╬╠;SAVE AS CURRENT CHANNEL
  1198.           3┼40 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  1199.           3┼43 09 08        ╧╥┴ #%00001000;08
  1200.           3┼45 8─ 3┼ 03     ╙╘┴ ┬╔╘_╞╠┴╟;SET ┬╔╘3
  1201.           3┼48 60           ╥╘╙
  1202.  
  1203.  
  1204. ;====================================================================
  1205. ; ╤╒┴╠_╞╬═ - ╤UALIFY FILENAME
  1206. ;
  1207. ╤╒┴╠_╞╬═
  1208.           3┼49 ─0 ─5        ┬╬┼ ╙╬┼╥╥6
  1209.           3┼4┬ 20 98 ┬─     ╩╙╥ ╞╥═┼╓╠;PROCESS CHARACTERS INTO STRING
  1210.           3┼4┼ 20 ┬5 ├7     ╩╙╥ ╞╥┼╙╘╥
  1211.           3┼51 ┴┴           ╘┴╪;SAVE LENGTH
  1212.           3┼52 ├9 00        ├═╨ #$00;IS NAME LENGTH 0?
  1213.           3┼54 ╞0 ─1        ┬┼╤ ┼╥╥╧╥35;YES, ERROR
  1214.  
  1215.           3┼56 ├9 12        ├═╨ #$12;IS LENGTH>18 (17+TERMINATOR)?
  1216.           3┼58 ┬0 1┴        ┬├╙ ┼╥╥╧╥┬0;YES, ERROR ┬0 ("╙TRING TOO ╠ONG ┼RROR")
  1217.  
  1218.           3┼5┴ ┴0 00        ╠─┘ #$00
  1219.           3┼5├ ┬1 1╞        ╠─┴ (╒╘╠╨╘╥),┘
  1220.           3┼5┼ ├9 40        ├═╨ #'@';??
  1221.           3┼60 ─0 0┴        ┬╬┼ ╤╞╬_├╧╬╘
  1222.  
  1223.           3┼62 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  1224.           3┼65 29 80        ┴╬─ #%10000000;80
  1225.           3┼67 ╞0 10        ┬┼╤ ┼╪╔╘_╤╞╬;FILENAME ALREADY PROCESSED, SO RETURN
  1226.           3┼69 4├ 00 ┬╞     ╩═╨ ╙╬┼╥╥;OOPS, ERROR
  1227.  
  1228. ╤╞╬_├╧╬╘
  1229.           3┼6├ 8┴           ╘╪┴;RESTORE FILENAME LENGTH
  1230.           3┼6─ ├9 11        ├═╨ #$11;LENGTH >17
  1231.           3┼6╞ ┬0 03        ┬├╙ ┼╥╥╧╥┬0;YES, ERROR
  1232.           3┼71 4├ 82 ─┼     ╩═╨ ╤╞╬_╥┼╘;RETURN PARAMETERS (.┴=LENGTH)
  1233.  
  1234. ┼╥╥╧╥┬0
  1235.           3┼74 ┴2 ┬0        ╠─╪ #$┬0;ERROR ┬0 ("╙TRING TOO ╠ONG")
  1236.           3┼76 4├ ├╞ ┬3     ╩═╨ ┼╥╥╧╥
  1237.  
  1238. ┼╪╔╘_╤╞╬
  1239.           3┼79 ┴─ 3┼ 03     ╠─┴ ┬╔╘_╞╠┴╟
  1240.           3┼7├ 09 80        ╧╥┴ #%10000000;80
  1241.           3┼7┼ 8─ 3┼ 03     ╙╘┴ ┬╔╘_╞╠┴╟;SET ┬╔╘7
  1242.  
  1243.           3┼81 8┴           ╘╪┴;RESTORE LENGTH
  1244. ╤╞╬_╥┼╘
  1245.           3┼82 ┴6 1╞        ╠─╪ ╒╘╠╨╘╥;RETURN POINTER TO FILENAME
  1246.           3┼84 ┴4 20        ╠─┘ ╒╘╠╨╘╥+1
  1247.           3┼86 60           ╥╘╙
  1248.  
  1249.  
  1250. ;====================================================================
  1251. ; ╟┼╘_─╒╨╥═ - ╟ET ─RIVE# OR ╠╒╬# (RETURNS IN .╪)
  1252. ;
  1253. ╟┼╘_─╒╨╥═
  1254.           3┼87 20 70 00     ╩╙╥ ├╚╥╟┼╘;GET NEXT CHARACTER
  1255. ╟┼╘_─╒╨╥═1
  1256.           3┼8┴ ─0 03┬╬┼ ╟┼╘╠╒╬2;NON-ZERO, CONTINUE
  1257.           3┼8├ 4├ 00 ┬╞    ╩═╨ ╙╬┼╥╥;MUST BE NULL, SO ╒ OR ─ SPECIFIED WITH NO #
  1258. ╟┼╘╠╒╬2
  1259.           3┼8╞ 90 09       ┬├├ ╟┼╘╠╒╬3;NO PARENTHESES, SO EVALUATE DIRECTLY
  1260.           3┼91 20 ╞2 ┬┼    ╩╙╥ ├╚╦╨╬╧;CHECK FOR "("
  1261.           3┼94 20 ─4 ├8    ╩╙╥ ╟┼╘┬┘╘;EVALUATE FORMULA AND RETURN BYTE IN .╪
  1262.           3┼97 4├ ┼╞ ┬┼    ╩═╨ ├╚╦╨╬├;CHECK FOR ")"
  1263. ╟┼╘╠╒╬3
  1264.           3┼9┴ 4├ ─4 ├8    ╩═╨ ╟┼╘┬┘╘
  1265.  
  1266.           3┼9─ .DB $╞4;SKIP (UNDEFINED OP-CODE???)
  1267.  
  1268. ╒╬╦╬╧╫╬7
  1269.           3┼9┼ 85 96       ╙╘┴ ├╙╘┴╘
  1270.           3┼┴╧ 91 ╧┼       ╙╘┴ (─╙_╠╙┬),┘
  1271.           3┼┴2 88          ─┼┘
  1272.           3┼┴3 60          ╥╘╙
  1273.  
  1274. .╧╥╟ $─┼┴4
  1275. ╙╔╟╬╧╬    .DB '*** ├╧══╧─╧╥┼ ┬┴╙╔├ 4.0 ***', $0─, $0─, $00
  1276.  
  1277. ;╞╔╠╠ $─┼├2 ╘╧ ─╞╞╞ ╫╔╘╚ .DB $┴┴
  1278.  
  1279. .╧╥╟ $╞000;╦┼╥╬┼╠ ═┼╙╙┴╟┼╙
  1280. .DB '╘╧╧ ═┴╬┘ ╞╔╠┼', $─3;00
  1281. .DB '╞╔╠┼ ╧╨┼', $├┼;0┼
  1282. .DB '╞╔╠┼ ╬╧╘ ╧╨┼', $├┼;17
  1283. .DB '╞╔╠┼ ╬╧╘ ╞╧╒╬', $├4;24
  1284. .DB $0─, '╙┼┴╥├╚╔╬╟ ╞╧╥', $┴0;32
  1285. .DB $0─, '╨╥┼╙╙ ╨╠┴┘ & ╥┼├╧╥─ ╧╬ ╘┴╨┼ ', $┴3;41
  1286. .DB $0─, '╠╧┴', $├4;5╞
  1287. .DB $0─, '╫╥╔╘╔╬╟', $┴0;64
  1288. .DB $╧─, '╓┼╥╔╞', $─9;6─
  1289. .DB '─┼╓╔├┼ ╬╧╘ ╨╥┼╙┼╬', $─4;74
  1290. .DB '╬╧╘ ╔╬╨╒╘ ╞╔╠', $├5;86
  1291. .DB '╬╧╘ ╧╒╘╨╒╘ ╞╔╠', $├5;94
  1292. .DB $0─, '╞╧╒╬─', $┴0;┴3
  1293. .DB $0─, '╧╦', $8─;┴┴
  1294. .DB $0─, '╥┼┴─┘.', $8─;┴┼
  1295. .DB $0─, '┴╥┼ ┘╧╒ ╙╒╥┼ ', $┬╞;┬6
  1296. .DB $0─, '? ";├5
  1297. .DB '┬┴─ ─╔╙╦ ', $8─;├8
  1298.